home *** CD-ROM | disk | FTP | other *** search
/ CyberMycha 2008 January / Cybermycha 1_2008.iso / Data.cab / _F9DEDB7F8A8F42879B25ACF327A4B483 < prev    next >
Encoding:
Text File  |  2004-07-16  |  1.5 KB  |  53 lines

  1.  
  2. regc( 0, "TFACTOR" )
  3. regc4f( 3, %dirtcolor_r, %dirtcolor_g, %dirtcolor_b, %sunvisibility )
  4. regc4f( 4, %dirtsnow, %dirtgravel, %dirtmud, 0.0 )
  5. regc4f( 5, %daycolor_r, %daycolor_g, %daycolor_b, %daycolor_a )
  6. regc4f( 7, %ambient_r, %ambient_g, %ambient_b, %ambient_a )
  7.  
  8. hlsl("
  9.  
  10. #include <../common_hlsl.h>
  11. #include <cardef.h>
  12.  
  13. sampler2D    sColor: register(s0);     
  14. sampler2D    sDirt: register(s1);
  15. sampler2D    sNormalmap: register(s2);
  16. samplerCUBE    sCubemap: register(s3);
  17.  
  18. const HALF4 DirtLevel : register(c0); // DirtLevel.a 
  19. const HALF3 DirtColor : register(c3);
  20. const HALF3 DirtType : register(c4);
  21. const HALF3 DayColor : register(c5);
  22. const HALF4 Ambient : register(c7);
  23.  
  24. static const HALF3 Tiling = {SNOWTILING, GRAVELTILING, MUDTILING};
  25. static const HALF3 FlatNormal = {0.0f, 0.0f, 1.0f};
  26.  
  27. struct PS_INPUT
  28. {
  29.     HALF2       uvColor : TEXCOORD0;
  30.     float3      E_ts : TEXCOORD1;
  31.     float3x3     Trans: TEXCOORD2;
  32. };    
  33.     
  34. HALF4 main( PS_INPUT i ): COLOR {
  35.  
  36.     HALF DirtMask = dot(tex2D( sDirt, i.uvColor ), DirtType)*DirtLevel.a;
  37.  
  38.     HALF3 Normalmap = tex2D( sNormalmap, i.uvColor)*2 - 1;    
  39.     HALF3 uvCubemap = mul(reflect(i.E_ts, Normalmap), i.Trans);
  40.     HALF3 Cubemap = texCUBE( sCubemap, uvCubemap);
  41.     HALF BrokenMask = tex2D( sNormalmap, i.uvColor).a;
  42.  
  43.     HALF3 Broken    = (Cubemap+Ambient.a*0.5)*BrokenMask;
  44.  
  45.     HALF Alpha = tex2D(sColor, i.uvColor).a;
  46.     
  47.     HALF3 Color = saturate(((1-Alpha)*DirtColor*0.3)+Broken);
  48.     
  49.     return HALF4(Color*DayColor, BrokenMask+Alpha+DirtMask);
  50. }
  51. ")
  52.  
  53.